package cn.hfjava.kz.entity.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Data;

/**
 * 申报审核表
 * @TableName review_audit
 */
@TableName(value ="review_audit")
@Data
public class ReviewAudit implements Serializable {
    /**
     *     
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 学生编号(外键)
     */
    @TableField(value = "studentId")
    private Integer studentId;

    /**
     * 学生姓名(例如：李明)
     */
    @TableField(value = "name")
    private String name;

    /**
     * 性别 (例如：男、女、未知)
     */
    @TableField(value = "sex")
    private String sex;

    /**
     * 出生日期(例如：1987/1/1)
     */
    @TableField(value = "birthDate")
    private LocalDate birthDate;

    /**
     * 地址(例如：安徽省合肥市包河区马鞍山南路109号富成大厦4楼)
     */
    @TableField(value = "address")
    private String address;

    /**
     * 民族(例如：汉族)
     */
    @TableField(value = "nation")
    private String nation;

    /**
     * 身份证号
     */
    @TableField(value = "IdNum")
    private String idNum;

    /**
     * 相片地址
     */
    @TableField(value = "imageUrl")
    private String imageUrl;

    /**
     * 户籍所在地
     */
    @TableField(value = "nativePlace")
    private String nativePlace;

    /**
     * 毕业院校
     */
    @TableField(value = "school")
    private String school;

    /**
     * 所学专业
     */
    @TableField(value = "major")
    private String major;

    /**
     * 毕业证编号
     */
    @TableField(value = "graduationNum")
    private String graduationNum;

    /**
     * 毕业时间
     */
    @TableField(value = "graduationDate")
    private LocalDate graduationDate;

    /**
     * 手机号
     */
    @TableField(value = "phoneNum")
    private String phoneNum;

    /**
     * 现工作单位
     */
    @TableField(value = "workUnit")
    private String workUnit;

    /**
     * 申报工种
     */
    @TableField(value = "profession")
    private String profession;

    /**
     * 申报等级
     */
    @TableField(value = "level")
    private String level;

    /**
     * 已取得本职业或相关职业及等级
     */
    @TableField(value = "curLevel")
    private String curLevel;

    /**
     * 证书编号
     */
    @TableField(value = "certificateId")
    private String certificateId;

    /**
     * 参保（或就业、学习）所在市
     */
    @TableField(value = "city")
    private String city;

    /**
     * 参加评价批次号
     */
    @TableField(value = "batchNumber")
    private String batchNumber;

    /**
     * 参加评价地点
     */
    @TableField(value = "appraiseLocation")
    private String appraiseLocation;

    /**
     * 个人事项承诺
     */
    @TableField(value = "promise")
    private String promise;

    /**
     * 单位审核意见
     */
    @TableField(value = "opinion")
    private String opinion;

    /**
     * 老师姓名1
     */
    @TableField(value = "teacher1")
    private String teacher1;

    /**
     * 老师姓名2
     */
    @TableField(value = "teacher2")
    private String teacher2;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ReviewAudit other = (ReviewAudit) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getStudentId() == null ? other.getStudentId() == null : this.getStudentId().equals(other.getStudentId()))
            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
            && (this.getSex() == null ? other.getSex() == null : this.getSex().equals(other.getSex()))
            && (this.getBirthDate() == null ? other.getBirthDate() == null : this.getBirthDate().equals(other.getBirthDate()))
            && (this.getAddress() == null ? other.getAddress() == null : this.getAddress().equals(other.getAddress()))
            && (this.getNation() == null ? other.getNation() == null : this.getNation().equals(other.getNation()))
            && (this.getIdNum() == null ? other.getIdNum() == null : this.getIdNum().equals(other.getIdNum()))
            && (this.getImageUrl() == null ? other.getImageUrl() == null : this.getImageUrl().equals(other.getImageUrl()))
            && (this.getNativePlace() == null ? other.getNativePlace() == null : this.getNativePlace().equals(other.getNativePlace()))
            && (this.getSchool() == null ? other.getSchool() == null : this.getSchool().equals(other.getSchool()))
            && (this.getMajor() == null ? other.getMajor() == null : this.getMajor().equals(other.getMajor()))
            && (this.getGraduationNum() == null ? other.getGraduationNum() == null : this.getGraduationNum().equals(other.getGraduationNum()))
            && (this.getGraduationDate() == null ? other.getGraduationDate() == null : this.getGraduationDate().equals(other.getGraduationDate()))
            && (this.getPhoneNum() == null ? other.getPhoneNum() == null : this.getPhoneNum().equals(other.getPhoneNum()))
            && (this.getWorkUnit() == null ? other.getWorkUnit() == null : this.getWorkUnit().equals(other.getWorkUnit()))
            && (this.getProfession() == null ? other.getProfession() == null : this.getProfession().equals(other.getProfession()))
            && (this.getLevel() == null ? other.getLevel() == null : this.getLevel().equals(other.getLevel()))
            && (this.getCurLevel() == null ? other.getCurLevel() == null : this.getCurLevel().equals(other.getCurLevel()))
            && (this.getCertificateId() == null ? other.getCertificateId() == null : this.getCertificateId().equals(other.getCertificateId()))
            && (this.getCity() == null ? other.getCity() == null : this.getCity().equals(other.getCity()))
            && (this.getBatchNumber() == null ? other.getBatchNumber() == null : this.getBatchNumber().equals(other.getBatchNumber()))
            && (this.getAppraiseLocation() == null ? other.getAppraiseLocation() == null : this.getAppraiseLocation().equals(other.getAppraiseLocation()))
            && (this.getPromise() == null ? other.getPromise() == null : this.getPromise().equals(other.getPromise()))
            && (this.getOpinion() == null ? other.getOpinion() == null : this.getOpinion().equals(other.getOpinion()))
            && (this.getTeacher1() == null ? other.getTeacher1() == null : this.getTeacher1().equals(other.getTeacher1()))
            && (this.getTeacher2() == null ? other.getTeacher2() == null : this.getTeacher2().equals(other.getTeacher2()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getStudentId() == null) ? 0 : getStudentId().hashCode());
        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
        result = prime * result + ((getSex() == null) ? 0 : getSex().hashCode());
        result = prime * result + ((getBirthDate() == null) ? 0 : getBirthDate().hashCode());
        result = prime * result + ((getAddress() == null) ? 0 : getAddress().hashCode());
        result = prime * result + ((getNation() == null) ? 0 : getNation().hashCode());
        result = prime * result + ((getIdNum() == null) ? 0 : getIdNum().hashCode());
        result = prime * result + ((getImageUrl() == null) ? 0 : getImageUrl().hashCode());
        result = prime * result + ((getNativePlace() == null) ? 0 : getNativePlace().hashCode());
        result = prime * result + ((getSchool() == null) ? 0 : getSchool().hashCode());
        result = prime * result + ((getMajor() == null) ? 0 : getMajor().hashCode());
        result = prime * result + ((getGraduationNum() == null) ? 0 : getGraduationNum().hashCode());
        result = prime * result + ((getGraduationDate() == null) ? 0 : getGraduationDate().hashCode());
        result = prime * result + ((getPhoneNum() == null) ? 0 : getPhoneNum().hashCode());
        result = prime * result + ((getWorkUnit() == null) ? 0 : getWorkUnit().hashCode());
        result = prime * result + ((getProfession() == null) ? 0 : getProfession().hashCode());
        result = prime * result + ((getLevel() == null) ? 0 : getLevel().hashCode());
        result = prime * result + ((getCurLevel() == null) ? 0 : getCurLevel().hashCode());
        result = prime * result + ((getCertificateId() == null) ? 0 : getCertificateId().hashCode());
        result = prime * result + ((getCity() == null) ? 0 : getCity().hashCode());
        result = prime * result + ((getBatchNumber() == null) ? 0 : getBatchNumber().hashCode());
        result = prime * result + ((getAppraiseLocation() == null) ? 0 : getAppraiseLocation().hashCode());
        result = prime * result + ((getPromise() == null) ? 0 : getPromise().hashCode());
        result = prime * result + ((getOpinion() == null) ? 0 : getOpinion().hashCode());
        result = prime * result + ((getTeacher1() == null) ? 0 : getTeacher1().hashCode());
        result = prime * result + ((getTeacher2() == null) ? 0 : getTeacher2().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", studentId=").append(studentId);
        sb.append(", name=").append(name);
        sb.append(", sex=").append(sex);
        sb.append(", birthDate=").append(birthDate);
        sb.append(", address=").append(address);
        sb.append(", nation=").append(nation);
        sb.append(", idNum=").append(idNum);
        sb.append(", imageUrl=").append(imageUrl);
        sb.append(", nativePlace=").append(nativePlace);
        sb.append(", school=").append(school);
        sb.append(", major=").append(major);
        sb.append(", graduationNum=").append(graduationNum);
        sb.append(", graduationDate=").append(graduationDate);
        sb.append(", phoneNum=").append(phoneNum);
        sb.append(", workUnit=").append(workUnit);
        sb.append(", profession=").append(profession);
        sb.append(", level=").append(level);
        sb.append(", curLevel=").append(curLevel);
        sb.append(", certificateId=").append(certificateId);
        sb.append(", city=").append(city);
        sb.append(", batchNumber=").append(batchNumber);
        sb.append(", appraiseLocation=").append(appraiseLocation);
        sb.append(", promise=").append(promise);
        sb.append(", opinion=").append(opinion);
        sb.append(", teacher1=").append(teacher1);
        sb.append(", teacher2=").append(teacher2);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}